#ifndef IO_TEST_H  // 防止重复包含
#define IO_TEST_H

#ifdef __cplusplus
extern "C" {
#endif
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <string.h>
#include <semaphore.h>
#include <signal.h>
#include "log_module.h"

// 执行基于文件读写的I/O测试
// 返回值：成功返回0，失败返回1
int io_test();

// 执行基于内存映射文件的测试
// 返回值：成功返回0，失败返回1
int mmap_test();

// 执行LCD帧缓冲相关的测试
// 返回值：成功返回0，失败返回 -1
int fb_test();

// 执行进程相关的测试
// 返回值：成功返回0，失败返回1
int progress_test();

// 执行线程相关的测试
// 返回值：成功返回0，失败返回1
int pthread_test();

// 执行带有互斥锁的线程相关测试
// 返回值：成功返回0，失败返回1
int pthread_mutex_lock_test();

// 执行进程文件锁相关的测试
// 返回值：成功返回0，成功执行返回0
int progress_file_lock_test();

// 使当前线程睡眠指定的毫秒数
// 参数：milliseconds - 要睡眠的毫秒数
void msleep(int milliseconds);

// 带有while(1)的线程函数
// 无返回
void *thread_func(void *arg);

// 非阻塞锁线程测试
// 无返回
int Non_blocking_mutex_lock();
// 共享资源访问函数
// 参数：进程名、信号量地址
void access_shared_resource(const char *process_name, sem_t *sem);

// Interprocess naming semaphores  进程间命名信号量验证
int inter_pro_name_sem_test();

// 处理 SIGALRM 信号的函数
void alarm_handler(int signum);
 // SIGALRM 信号使用验证
int signal_test();

#ifdef __cplusplus
}
#endif

#endif /* MY_HEADER_H */
